iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 14
0

Android內建SQLite

SQLite是什麼呢?
簡單來說就是我們想保存資料,在關閉app時,下次開啟後,資料依舊還在,要達到此效果,就須寫個本地資料庫(MySQL、SQLite...),或者雲端資料庫(Firebase...)。

Android提供了對 SQLite數據庫的完全支持,應用程序中的任何類都可以通過名稱來訪問任何的數據庫,但是應用程序之外的就不能訪问。

首先創建一個class名為MyDBHelper(DB=DataBase的意思,也就是資料庫),繼承SQLiteOpenHelper。

SQLiteOpenHelper

Android中,通过SQLiteOpenHelper類別來實現對SQLite數據庫的操作。

  • 定義:SQLiteOpenHelper是一個輔助類
  • 作用:管理數據庫(創建、增、修、刪) & 版本的控制。
  • 怎麼使用呢:我們通過創建一個class(子類),繼承SQLiteOpenHelper這個類別,實現它的一些方法來對數據庫進行操作。
方法名稱 使用來做... 備註
onCreate() 創建資料庫 創建時自動調用
onUpgrade() 升級資料庫
close() 關閉資料庫
execSQL() 做新增刪除修改 但不能查詢
query()、rawQuery() 查詢資料庫
insert() 新增、插入
delete() 刪除
getWritableDatabase() 創建可以讀寫的資料庫 返回的SQLiteDatabase對象對資料庫進行操作
getReadableDatabase() 創建可以讀的資料庫 返回的SQLiteDatabase對象對資料庫進行操作
Imgur
public static final String DATABASE_NAME = "mydata.db";
  • // 資料庫名稱
public static final int VERSION = 1;
  • // 資料庫版本,資料結構改變的時候要更改這個數字,通常是加一
private static SQLiteDatabase database;
  • // 資料庫物件,固定的欄位變數
public MyDBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);}
  • 建構子
  • //context=內容物件;name=傳入資料庫名稱;factory=複雜查詢時使用;version=資料庫版本
sqLiteDatabase.execSQL(ItemDAO.CREATE_TABLE);
  • // 建立應用程式需要的表格
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + ItemDAO.TABLE_NAME);
// 呼叫onCreate建立新版的表格
onCreate(sqLiteDatabase);
  • // 刪除原有的表格
  • //DROP TABLE 刪除
  • //IF EXISTS 判斷有無東西

上一篇
[Day13]ListView設計-04
下一篇
[Day15] SQLite
系列文
Java 與 Kotlin 入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言